/*
    语句又叫流控制语句
    3.6
        3.6.1 if 语句
            if () {}
        3.6.2 do-while 语句
            后测试循环语句，循环体内的代码执行后才会执行条件判断，循环体内的代码至少循环一次。
        3.6.3 while 语句
            let i = 0
            while (i<10) {
                i += 2;
            }
            先测试循环语句,先执行判断条件
        3.6.4 for 语句
            先测试循环语句，增加了进入循环前的初始化代码
            注意：初始化和条件表达式都不是必须的，因此可以写无穷循环
                for(;;){}
        3.6.5 for-in 语句
            一个非常严格的迭代语句，用于枚举对象中的非符号键属性
            推荐使用const 
            for(const propName in window){}
            es中对象属性是无序的，所有不能确定for-in循环的顺序，如果迭代的null或者undefined，则不执行循环体
        3.6.6 for-of 语句
            一个非常严格的迭代语句，用于遍历可迭代对象的元素
            es2018增加了 for-await-of 循环，可循环异步函数
            for-of循环可迭代对象的next()方法产生值的顺序迭代元素
        3.6.7 标签语句 标签语句的典型应用场景是嵌套循环
            start: for (let i = 0; i < count; i++) { 
                console.log(i); 
            }
        3.6.8 break和continue语句
            break和continue语句为执行循环代码提供了更严格的控制手段。
            break用于立即退出循环，强制执行循环后的下一条语句。
            continue也用于立刻退出循环，但会再次从循环顶部开始执行。
        3.6.9 with 语句
        with的作用是将代码作用域设置成对象
            let qs = location.search.substring(1);
            let hostName = location.hostname;
            let url = location.href;
            with(location){
                let qs = search.substring(1);
                let hostName = hostname;
                let url = href;
            }
            严格模式不允许使用with语句，否则会抛出错误
        3.6.10 switch 语句
            switch(i) {
                case 10:
                    console.log("22")
                case 22:
                    console.log("22")
                    break;
                default;
            }
*/